package com.zl.tby.screen.service;

import com.zl.tby.screen.vo.animalPlant.TbyAnimalPlantScreenBean;
import com.zl.tby.screen.vo.animalPlant.TbyAnimalPlantScreenQuery;
import com.zl.tby.vo.bean.SpeciesLegendBean;

import java.text.ParseException;
import java.util.List;

/**
 * 动植物-大屏
 * @author sunjiaxing
 * @version 1.0
 * @since 2024/8/16 23:10
 */
public interface ITbyAnimalPlantScreenService  {

    /**
     * 野生物种资源
     * @return 结果
     */
    List<TbyAnimalPlantScreenBean> getTypeLevel(Long typeLevel,String protectionLevel);

    /**
     * 野生物种资源
     * @return 结果
     */
    List<TbyAnimalPlantScreenBean> getAnimalTypeLevel(Long typeLevel,String protectionLevel);

    /**
     * 野生物种资源
     * @return 结果
     */
    List<TbyAnimalPlantScreenBean> getPlantTypeLevel(Long typeLevel,String protectionLevel);

    /**
     * 旗舰物种查询
     * @return 结果
     */
    List<TbyAnimalPlantScreenBean> getSpecies(Long typeLevel);

    Long searchTotalCountByProtectionLevel(String protectionLevel, Long topId);

    Long searchTotalCountByProp(String prop, Long topId);

    Long searchTotalCountByEcology(String ecology);

    /**
     * 保护动物查询
     * @return 结果
     */
    List<TbyAnimalPlantScreenBean> getProtection(String[] array, String[] levelArray, String[] otherArray, Long topId);

    /**
     * 保护植物查询
     * @return 结果
     */
    List<TbyAnimalPlantScreenBean> getProtectionByPlant();

    /**
     * 特色物种查询
     * @return 结果
     */
    List<TbyAnimalPlantScreenBean> getTSWZ(TbyAnimalPlantScreenQuery dto);

    /**
     * 物种趋势查询
     * @return 结果
     */
    List<TbyAnimalPlantScreenBean> getChangeTrend(TbyAnimalPlantScreenQuery dto) throws ParseException;

    List<TbyAnimalPlantScreenBean> getChangeTrendNew(TbyAnimalPlantScreenQuery dto) throws ParseException;

    /**
     * 大型菌类物种趋势
     * @param dto: 查询条件
     * @return
     * @throws ParseException
     */
    List<TbyAnimalPlantScreenBean> getfungi(TbyAnimalPlantScreenQuery dto) throws ParseException;


    /**
     * 获取图片
     * @return 结果
     */
    List<TbyAnimalPlantScreenBean> getview(Long id);

    /**
     * 野生物种分类统计图结果
     * @param typeLevel: 大类
     * @return 结果
     */
    List<TbyAnimalPlantScreenBean> groupByCategory(Long typeLevel);

    /**
     * 根据大类获取图例
     * @param speciesParentId: 分类大类
     * @return 图例
     */
    List<SpeciesLegendBean> getLegendByParentId(Long speciesParentId);

    Long searchTotalCountByCherish(Integer val, Long topId);
}
